Traditionally, computers and telephones have been viewed as separate and distinct devices. In the traditional view, a computer is a tool for manipulating and storing data, while the telephone is a tool for engaging in audio communications. As computers become smaller, however, the distinction between computers and telephones has become blurred. Most telephones include some computing capability, and most computers include some communications capability.
The inclusion of computing capability in a telephone allows the telephone to act in what can be viewed as two “modes”—i.e., a voice mode and a data or “visual” mode. In the voice mode, the user of the telephone engages in two-way voice communication with another party (where the other party may, in fact, be a computer rather than a person). In the data/visual mode, the user enters data on a keypad and receives data in such a manner that it can be viewed on the telephone's visual display. At present, most software applications for telephony interact with the telephone in a single mode—i.e., the telephone user may use voice mode or data/visual mode, but generally not both at the same time. As telephones evolve to include more computing and data processing capability, it can be expected that applications will correspondingly evolve to permit a user to interact with the application by switching back and forth between voice and data modes (or by adding and dropping modes in environments that permit the use of two or more modes simultaneously). Such applications need the support of an infrastructure that facilitates such “mode swapping.”
In view of the foregoing, there is a need for a system that supports such mode swapping, which has not been realized in the prior art.